package 结构型.享元模式;

import java.util.HashMap;

/**
 * @author TMingYi
 * @description 产生享元对象的工厂。 
 * @date 2020年12月20日
 */
public class WebSiteFactory {
	
	
	// key为内部状态的值，value为我们要共享的值，String不能为空。
	private static HashMap<String, ConcreteWebSite> hashMap = new HashMap<String, ConcreteWebSite>();
	
	// 采用单例的设计模式,不允许创建实例。
	private WebSiteFactory() {}
	
	public static ConcreteWebSite getWebSiteCategory(String type) {
		if (type == null) return null;
		
		if (!hashMap.containsKey(type)) {
			// 如果没有对象我们就创建初始化对象。
			hashMap.put(type, new ConcreteWebSite(type));
		}
		// 返回共享的对象。
		return hashMap.get(type);
	}
	
	
	

}
